草庐IT

simplexml - PHP simplexml 实体

全部标签

java - 使用 Regex 修复 Java 中未转义的 XML 实体?

我有一些格式错误的XML,我必须对其进行解析。无法在上游解决问题。(当前)问题是&字符并不总是正确转义,所以我需要将&转换为&如果&已经存在,我不想将其更改为&。一般来说,如果任何结构良好的实体已经存在,我不想破坏它。一般来说,我认为不可能知道可能出现在任何特定XML文档中的所有实体,因此我想要一个解决方案,其中保留诸如&;之类的任何内容。其中是一些定义实体的字符集,介于初始&和结束;之间。特别是,和>不是表示XML元素的文字。现在,在解析时,如果我看到&,我不知道我会遇到;、(空格)、行尾还是另一个&。所以我认为我必须记住,因为我期待一个字符告诉我如何

objective-c - 如何使用 NSXMLParser 解析内部声明的 XML 实体引用

我有一个使用内部声明实体的XML文件。例如:......foo&my_symbol;bar...使用NSXMLParser类,我如何能够解析my_symbol实体引用?根据实验,parser:foundInternalEntityDeclarationWithName:value:将为my_symbol调用委托(delegate)方法实体声明,有值"mysymbolvalue".然后,当my_next_element达到元素,NSXMLParser将调用parser:didStartElement:namespaceURI:qualifiedName:attributes:委托(del

c# - 使用 LINQ 覆盖或忽略 C# 中未声明的实体

我有一个小实用程序,可以使用LINQ在XML文件中查找某些内容。它相当快速和漂亮地处理了大量的它们。然而,某批文件中约有20%的文件读取失败并被跳过,原因是文件中存在度数符号°。这是“对未声明的实体‘deg’的引用”。一个previousquestion是关于。上一个问题中提供的解决方案不能直接应用到这里。我不能随意修改文件,制作它们的副本并替换实例或在副本中插入标签似乎效率低下。让LINQ忽略未声明的实体的最佳方法是什么,这些实体与我的程序的行为完全无关?或者是否有一种让XDocument.Load预先提供一些实体声明的好方法? 最佳答案

.net - 解析具有未定义实体的 XHTML 文档

在使用Python编码时,如果我必须加载带有未定义实体的XHTML文档,我会创建一个解析器并更新实体字典(即nbsp):importxml.etree.ElementTreeasETparser=ET.XMLParser()parser.entity['nbsp']=' 'tree=ET.parse(opener.open(url),parser=parser)我尝试使用VB.Net将XHTML文档解析为LinqXDocument:DimxAsXDocument=XDocument.Load(url)引发了XmlException:Referencetoundeclare

.net - XML 炸弹(实体注入(inject))默认情况下在 .Net 4.0 中得到处理,但在 .Net 3.5 中没有。如何?什么改变了?

代码如下XmlDocumentxdoc=newXmlDocument();Stringxml=@""+""+""+""+""+""+""+""+""+"]>"+"&lol9;";xdoc.LoadXml(xml);.Net4.0此代码将抛出异常输入文档超出了MaxCharactersFromEntities设置的限制.Net2.0/3.5此代码将不会抛出任何异常,并将在XML中继续增长,直到达到内存限制有人可以解释这种差异的原因吗?目前所做的研究我反汇编了System.Xmlv2.0和v4.0,我看到的唯一变化是方法RegisterConsumedCharactersv2.0定义pri

python - 如何获取平面 XML 以便将外部实体合并到顶层

我知道这是一个边界案例,无论它真的属于stackoverflow还是super用户,但似乎这里有很多“编辑代码”问题,我将其发布在SO上。我有一堆XML文件,有人以其无限的智慧决定使用标签将其分解为多个文件,结果使调试/编辑它们成为一个巨大的P-i-t-A。因此,我正在寻找:在VIM中在单个缓冲区中打开它们的方法(最好将更改保存在正确的外部实体文件中),或者;一种在VIM中扩展文件以便在缓冲区中读取和替换外部实体的方法,或者;一种在命令行(或.vimrc中)执行此操作的简单bash/sed/python方法顶层包含的文件可能包含新文件等等谁知道有多少层所以这需要递归...这是顶层文件的

c# - 使用外部实体文件在 C# 中处理 XML

我正在用C#处理一个XML文件(不包含任何dtd或ent声明),其中包含é等实体和à。我在尝试加载XML文件时收到以下异常...XmlDocumentxmlDoc=newXmlDocument();xmlDoc.LoadXml(record);Referencetoundeclaredentity'eacute'.我能够找到正确的ent文件here.我如何告诉XmlDocument在加载我的XML文件时使用这个ent文件? 最佳答案 在.Net4之前的框架版本中,您使用ProhibitDtd一个XmlReaderSettings实例

xml - DTD 实体与 XML 模式元素

我使用文档DTD执行了以下操作:文件.xsl:]>[...]&red;[...]我想将所有内容都更改为XML-Schema。所以我尝试了:文件.xsd:文件.xsl:[...][...]现在通过Xalanred解析文件不像在DTD版本中那样被翻译。我的错误在哪里?解析过程中是否没有读取Schema文件? 最佳答案 fixed元素定义中的属性不会告诉解析器进行文本替换。它只是意味着元素的值必须始终相同。事实上,我相信您的XSLT生成的XML不会根据您的模式进行验证,因为的值元素不是“rgb(255,0,0)”。即使你使用了defaul

c# - XDocument.Save() 删除了我的 实体

我使用C#和Linq-to-XML编写了一个工具来修复一些XML文件(即,插入一些丢失的属性/值)。该工具将现有的XML文件加载到XDocument对象中。然后,它通过节点向下解析以插入丢失的数据。之后,它调用XDocument.Save()将更改保存到另一个目录。所有这些都很好,除了一件事:XML文件文本中的任何实体都被换行符替换。当然,该实体代表一个新行,但我需要在XML中保留该实体,因为另一个消费者需要它。有没有办法在不丢失实体的情况下保存修改后的XDocument?谢谢。 最佳答案 实体在XML中在技术上称为“数字

c# - 如何在 .net 反序列化期间防止 XML 外部实体 (XXE) 攻击

我们正在使用veracode对我们的代码进行安全分析,它显示了以下代码的XXE漏洞,特别是在调用Deserialize()的地方。我们如何防止序列化程序访问外部实体。我在下面为XMLReader将XMLresolver设置为null的尝试不起作用。publicstaticTDeserializeObject(stringxml,stringNamespace){System.Xml.Serialization.XmlSerializerserializer=newSystem.Xml.Serialization.XmlSerializer(typeof(T),Namespace);Me